package com.yuw.udpsocket;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

public class ClientThread extends Thread{

	//属性
	private DatagramSocket socket;
	@Override
	public void run() {
		//初始化客户端DatagramSocket
		
		try {
			// 初始化客户端DatagramSocket
			socket =new DatagramSocket();
           
			/////////////////发送消息//////////////////
			// 输出内容到网路，发送给服务器端
			String strMsgSend ="hello服务器,我是客户端";
			//第一个参数是服务器的主机名或ip地址：localhost表示当前主机是服务器：127.0.0.1表示当前主机，具体的ip地址
			//例如"10.96.104.119"
			  //将需要发送的消息打包到DatagramPacket数据包中
			DatagramPacket dp=new DatagramPacket(strMsgSend.getBytes(),0,strMsgSend.getBytes().length,
					new InetSocketAddress("10.96.104.119", 8890));
			//使用DatagramPacket数据包发送到网络
			socket.send(dp);
			
			// 输出信息
			System.out.println(strMsgSend);
			
			
	
			////////// 接收消息/////////////
			// 客户端的DatagramSocket创建一个用于接收服务器端的DatagramPacket
			// 也就是，客户端使用DatagramPacket来接收服务器端发送的消息内容
			// 创建一个DatagramPacket使用的字节数组
			byte[] buf = new byte[1024];
			DatagramPacket dpReceived = new DatagramPacket(buf, buf.length);
			// 将服务端发送的消息接收到客户端的DatagramPacket中
			socket.receive(dpReceived);
			// 获取本次接收的信息的字节的个数
			int len = dpReceived.getLength();

			// 把接收到的字节转换为字符串
			String strMsgRecieved = new String(buf, 0, len);

			System.out.println(strMsgRecieved);
			
			
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	
	
	

}
